//本地管理。 访问-本地-功能方法()
/**
 * 总的：
 */

function NW03_bd(fq) {//传入父亲对象（本对象的上一级）
    this.fq = fq;
    this.wgj = fq.wgj;
}


/**
 * 通过目录，删除相关数据（内容+目录）
 * @param {文本} ml 目录
 * @param {文本} cflj 存放路径
 */
NW03_bd.prototype.sc = function (ml, cflj) {
    let shijian = new Date();
    shijian.setTime(shijian.getTime() - 1);
    let _zhi = this.hq(ml);
    if (_zhi != null) {
        cflj = cflj ? ';path=' + cflj : ''
        document.cookie = ml + "=" + _zhi + ";expires=" + shijian.toGMTString() + cflj;
    }
}


/**
 * 保存一对数据 （键=值）。
 * @param {文本} m 键
 * @param {文本|JSON对象} zhi 值
 * @param {数字} bcShijian 天数
 * @param {文本} cflj 存放路径
 */
NW03_bd.prototype.bc = function (m, zhi, bcShijian, cflj) {
    this.bc_pdJM(m, zhi, false, bcShijian, cflj)
}

NW03_bd.prototype.bc_jm = function (m, zhi, bcShijian, cflj) {
    this.bc_pdJM(m, zhi, true, bcShijian, cflj)
}

/**
 * 保存一对数据 （键=值）。 判断是否加密
 * @param {文本} m 键
 * @param {文本|JSON对象} zhi 值
 * @param {数字} bcShijian 天数
 * @param {文本} cflj 存放路径
 */
NW03_bd.prototype.bc_pdJM = function (m, zhi, jiami, bcShijian, cflj) {
    if (!this.wgj.pdWenben(zhi)) {
        zhi = JSON.stringify(zhi);
    }
    cflj = cflj ? ';path=' + cflj : ''
    if (jiami) {
        zhi = this.wgj.jiamiNR(zhi, 11);
    }
    //默认200年
    if (bcShijian == 0) {
        bcShijian = 365 * 200
    } else if (bcShijian == null) {
        bcShijian = undefined;
    }
    let d = new Date();
    d.setTime(d.getTime() + (bcShijian * 24 * 60 * 60 * 1000));
    let expires = ";expires=" + d.toGMTString();

    document.cookie = m + "=" + zhi + expires + cflj;
}

/**
 * 通过目录，取得相关内容（自动 判断，如果是 以{开头 }结束的，会自动转json格式。
 * @param {文本} ml 目录    
 * @param {真假} jiemi 是否需要解密。默认不需要
 * @param {真假} feiZidong 不自动结果转成 Json格式 ； false=自动检测，转换； true=不自动检测
 * @returns 文本|JSON对象
 */
NW03_bd.prototype.hq = function (ml, jiemi, feiZidong) {
    let _m = ml + "=";
    let _SJ = document.cookie.split(';');
    let _jzd;//临时，存放键值对。
    let _jg = '';//如果找到我们需要的值。用此保存
    for (let i = 0; i < _SJ.length; i++) {
        _jzd = _SJ[i].trim();
        if (_jzd.indexOf(_m) == 0) {
            //我们要的结果
            _jg = _jzd.substring(_m.length, _jzd.length);
            //我们的结果是真值，并且需要解密
            if (_jg && jiemi) {
                //执行解密
                _jg = this.wgj.jiemiNR(_jg, 11);
            }
            //不自动转换。直接返结果。
            if (feiZidong) {
                return _jzd;
            }
            break;
        }
    }
    //到这一步，表示需要检测结果，是否是json对象，是的话，转成json对象返回。
    if (_jg) {
        if (_jg.startsWith('{') && _jg.endsWith('}')) {
            return this.wgj.gshWB_mbJson(_jg)
        }
    }
    return _jg;
}